<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS运算符_逻辑运算符</title>

    <script>
        var flag = true;

        document.write(flag + "<br>");
        document.write(!flag + "<br>");
        document.write("<hr>");

        var flag2 = 3;
        document.write(!!flag2 + "<br>");
        document.write("<hr>");

        // number
        var num = 3;
        var num2 = 0;
        var num3 = NaN;
        document.write(!!num + "<br>");
        document.write(!!num2 + "<br>");
        document.write(!!num3 + "<br>");
        document.write("<hr>");

        // string
        var str = "abc";
        var str2 = "";
        document.write(!!str + "<br>");
        document.write(!!str2 + "<br>");
        document.write("<hr>");

        // null & undefined
        var obj = null;
        var obj2;
        document.write(!!obj + "<br>");
        document.write(!!obj2 + "<br>");
        document.write("<hr>");

        // 对象
        var date = new Date();
        document.write(!!date + "<br>");
        document.write("<hr>");

        obj = "123";
        // 防止空指针
        if (obj != null && obj.length > 0) {
            alert(123);
        }
        // 或
        // js 中这样简化书写
        if (obj) {
            alert(456);
        }


    </script>
</head>
<body>

</body>
</html>